package com.wang.springbootinit.service;

import com.wang.springbootinit.model.entity.Integral;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wang.springbootinit.model.param.IntegralOperateParam;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
* @author wang3
* @description 针对表【integral】的数据库操作Service
* @createDate 2024-03-16 14:15:56
*/
public interface IntegralService extends IService<Integral> {

    /**
     * 获取积分 根据用户id
     * @param userId
     * @return
     */
    Integral getByUserId(Long userId);


    /**
     * 签到
     * @param request
     * @return
     */
    Boolean signIn(HttpServletRequest request);


    /**
     * 兑换积分
     * @param param
     * @param request
     * @return
     */
    Boolean exchange(IntegralOperateParam param, HttpServletRequest request);

    /**
     * 查看用户当天是否已经签到
     * @param userId
     * @return
     */
    Boolean isSignIn(Long userId);

    /**
     * 统计用户指定年月签到次数
     * @param userId
     * @return
     */
    Long getSignInCount(Long userId);

    /**
     * 获取用户指定年月签到列表，也可以通过这种方式获取用户月签到次数
     * @param userId
     * @return
     */
    List<Map> getSignInList(Long userId);

}
